Notebook d'essais des différentes approches de modélisation

Sommaire

  1. Import des librairies
  2. Chargement des données
  3. Segmentation RFM
    1. Formatage
    2. Analyse
    3. ACP
  4. Approches de modélisation
    1. Clustering hiérarchique
    2. KMeans
  5. Tableau récapitulatif
  6. Conclusion

Import des librairies

Chargement des données

On recupère le jeu de données sauvegardé à la fin de l'analyse et de la manipulation des données

Segmentation RFM

La segmention RFM (Récence, Fréquence, Montant) est une méthode très utilisée en marketing, qui consiste à établir des segments de clients homogènes.

Nous allons regrouper les données du fichier par client unique, et créer 3 variables pour chaque client :

Formatage

On va formater la date de la feature recence pour obtenir la date du dernier achat en nombre de jours. On se base sur la date la plus proche que l'on fixe à 1.

Analyse

On observe qu'il n'y a que 3,11% des clients qui ont commandé plus d'une fois.

On va ensuite observer la distribution de ces variables RFM.

Il n'ya pas de valeurs aberrantes, ni de valeurs manquantes. On peut garder les données telle quelle pour la suite.

ACP

l'ACP n'est pas très pertinente sur ces features, elle permet simplement d'observer une orthogonalité entre elles sur le cercle des corrélations.

Approches de modélisation

Nous allons utiliser plusieurs modèles pour segmenter nos clients et trouver celui qui est le plus performant.

Clustering hiérarchique

On utilise un Dendogram pour visualiser la hiérarchie des variables RFM.

Le graphe nous affiche une possibilité avec 4 clusters, mais il est possible de segmenter en plus de clusters.

Méthode des kMeans

Le modèle des kMeans est un des plus simples à utiliser, il prend en entrée un nombre de clusters et le data à segmenter.

On va modéliser plusieurs fois en rajoutant des features en plus des features RFM, afin de tester leur impact sur le modèle, et observer ou non une dégradation de celui ci.

Pour déterminer le nombre de clusters (la valeur optimale de k), on va utiliser la méthode du coude (valeurs de la distorsion de l'inertie) et le score silhouette (moyenne des coefficients de silhouette pour chacun des points)

Les différenets étapes pour chaque modélisation :

Features RFM

Modèle avec les 3 features RFM (Récence, Fréquence, Montant cumulé)

Features RFM + review_score

On va ici rajouter la feature 'review_score' en plus des features RFM

Pour le review_score on supprime les lignes qui n'en ont pas, après vérification, cela concerne toutes sortes de clients, il n'y aura donc pas d'impact sur un cluster spécifique. Il vaut mieux les supprimer plutôt que d'imputer ces valeurs manquantes car cela fausserait le jeu de données.

Features RFM + delivery_time

Features RFM + estimated_delivery_time

Features RFM + difference between delivery_time and estimated_delivery_time

Features RFM + (customer state = seller state ?)

Features RFM + payment_type

Tableau récapitulatif

Conclusion

Le modèle kMeans segmente notre jeu de données en 4 ou 5 clusters, dépendamment des features que l'on sélectionne.

Mais il y a toujours 2 clusters principaux qui ressortent, ce sont les clients qui achètent fréquemment, et ceux qui dépensent de gros montants. Ils représentent une minorité des clients, en effet seulement 3,11% d'entre eux reviennent acheter sur le site, et ces 3.11% sont classés parmis ces 2 clusters.

Les clients qui n'ont passé qu'une seule commande sont eux placés dans les autres clusters.

Ces autres clusters segmentent principalement les clients en fonction de la récence, du groupe de clients ayant passé commande le plus récemment au groupe de clients ayant passé commande il y a longtemps.

Ajouter d'autres features dans notre modèle va simplement affiner la segmentation de nos clients n'ayant commandé qu'une seule fois. Le score silhouette peut être dégradé ou amélioré en ajoutant des features, mais globalement on obtient toujours la même segmentation pour les clients les plus importants.

Ajouter des features est donc intéressant si l'on veut identifier un moyen de fidéliser les clients qui n'achètent qu'une seule fois, en affinant leur segmentation en fonction du review score, de la méthode de paiement ou encore du pays du client.

Pour les clients les plus importants les données les plus intéressantes sont la fréquence d'achat et le montant cumulé, les autres features ne vont pas améliorer ces clusters.